Machines such as traditional locomotives are known to use a centralized on-board computer-based control system. Typically, such conventional control systems for a machine may include a central processing unit on the machine. Control system software consists of a plurality of code modules that are executed, or processed by the computer processors. When one of the code modules does not execute as intended (typically due to a coding defect), it can corrupt data or prevent other functions from running. For example, a fault in one of the code modules may cause the system to enter into a failure condition, or necessitate a system reset by going into an infinite loop that causes the control system to malfunction. Typically the faulty code module is in the middle of executing its code when the system enters into a failure condition.
Currently, when the user of the control system reports a malfunctioning machine controller, the technician's first goal is to identify the one or more code modules that contain the code fault. One method for identifying a faulty code module is identifying the code modules that were executing (processing the module's instructions in a central processor) just prior to when the control system entered into a failure condition. Control software may be engineered for each fault occurrence by writing and installing a custom program code that assists the technician with identifying the faulty code module. However, current machine control systems may contain thousands of code modules. Detecting the source of one or more code faults may require multiple iterations of control software, and each iteration may be installed on each of the thousands of code modules. Further, intermittent faults in code modules may not repeat for a prolonged period of time, adding yet another complication to detecting the faulty code module.
One exemplary method used to indicate a fault in a control system is described in U.S. Pat. No. 6,463,559 B1 (the '559 patent). The '559 patent describes a system that is configured for detecting both repeatable and intermittent fault conditions in a computer system. However, the complexity of new control systems may introduce problems to systems such as that described in the '559 patent. For example, the system described in the '559 patent appears to indicate and record whether a fault has occurred on a control system, and employs a recovery routine when a fault is indicated. However, the system of the '559 patent is silent with regard to other factors needed in the discovery of a particular faulty control module. For example, the system described in the '559 patent is not configured to detect which code module, in a network containing possibly hundreds or more such modules, is responsible for multiple system failures.
The presently disclosed control system is directed to overcoming one or more of the problems set forth above and/or other problems in the art.